/**
 *
 */
package com.yangtao.prototype.system.role.service;

import com.yangtao.prototype.system.role.web.RoleModel;

/**
 * @author角色管理类
 */
public interface RoleService {
	/**
	 * 根据角色ID所有菜单页签集合
	 *
	 * @param model
	 * @return model
	 */
	RoleModel loadMenus(RoleModel model);

	/**
	 * @param model
	 * @return model
	 * @remark 根据角色相关信息条件得到分页集合信息
	 */
	RoleModel list(RoleModel model);

	/**
	 * 新增角色或修改角色时操作 新增: 角色编号和名称不能重复,同进保存相应角色和页签关联表中
	 *
	 * @param model
	 * @return model
	 */
	RoleModel addRole(RoleModel model);

	/**
	 * 角色编号不可修,名称不能重复,同时修改角色和页签关联表相关数据
	 *
	 * @param model
	 * @return model
	 */
	RoleModel updateRole(RoleModel model);

	/**
	 * 根据角色ID号，角色信息及角色和页签相关信息据
	 * 角色加载时，1.把功能树加载出来（考虑按纽权限），2.点页签表头时把相应页面元素加载出来
	 *
	 * @param model
	 * @return model
	 * @remark
	 */
	RoleModel loadRole(RoleModel model);

	/**
	 * 删除判断角色下有没有用户(有相关用户不能删除)
	 * 删除时删除角色相关权限表
	 *
	 * @param model
	 * @return model
	 */
	RoleModel deleteRole(RoleModel model);

	/**
	 * 加载当前用户的可分配资源
	 * 可分配的组织机构
	 * 可分配的菜单
	 *
	 * @param model
	 * @return
	 */
	RoleModel loadAvailableResource(RoleModel model);
}
